TinyGameModule={};
require("Module/TinyGame/TinyGameData");
require("Module/TinyGame/TinyGameNetwork");
require("Module/TinyGame/TinyGameConfig");

TinyGameModule.tinyGameLogin = require("Module/TinyGame/View/tinyGameLogin");
TinyGameModule.tinyGame = require("Module/TinyGame/View/tinyGame");
TinyGameModule.tinyGameOver = require("Module/TinyGame/View/TinyGameOver");

function TinyGameModule:viewInit()
    TinyGameModule.view = {
        TinyGameModule.tinyGame,
        TinyGameModule.tinyGameLogin,
        TinyGameModule.tinyGameOver,
    };
    for i, v in ipairs(TinyGameModule.view) do
        v.module = TinyGameModule;
    end
end

function TinyGameModule:clearModuleRes()
    for i, v in ipairs(TinyGameModule.view) do
        if v.isInit then
            return ;
        end
    end
    ResMgr:clearRes("TinyGame");
end

function TinyGameModule:init()
    TinyGameModule:viewInit();
    TinyGameNetwork:init();
    TinyGameConfig:init();
    TinyGameData:init();

    Dispatcher:addMessageListener(EventType.InitUIRootFinish, TinyGameModule.onInitUIRootFinish);
    Dispatcher:addMessageListener(EventType.PreloadProgress, function (progress)
        if progress>=1 then
            Dispatcher:dispatch(EventType.TinyGameLogin_Open);
        end
    end);
    Dispatcher:addMessageListener(EventType.TinyGameLogin_Open, function ()
        TinyGameModule:openTinyGameLogin();
    end);
    Dispatcher:addMessageListener(EventType.TinyGame_Open, function ()
        TinyGameModule:openTinyGame();
    end);
    Dispatcher:addMessageListener(EventType.TinyGameOver_Open, function ()
        TinyGameModule:openTinyGameOver();
    end);
end

TinyGameModule.onInitUIRootFinish = function()
    ResMgr:preloadPrefab();
    Dispatcher:removeMessageListener(EventType.InitUIRootFinish, TinyGameModule.onInitUIRootFinish);
end

function TinyGameModule:openTinyGameLogin()
    TinyGameModule.tinyGameLogin:show("TinyGame/TinyGameLogin");
end

function TinyGameModule:openTinyGame()
    TinyGameModule.tinyGame:show("TinyGame/TinyGame");
end

function TinyGameModule:openTinyGameOver()
    TinyGameModule.tinyGameOver:show("TinyGame/TinyGameOver");
end